package main

import (
	"fmt"
	"strings"
)

func main() {
	// 字符串
	//s := "hellow "
	// 单独字母、汉字、符号表示一个字符
	//c1 := 'h'
	//c2 := '1'
	//c3 := '烧'
	// 字节: 1字节=8Bit(8个二进制位)
	//1个字符“A'=1个字节
	//1个utf8编码的汉字沙"= 一般占3个字节
	//  本来是具有特殊含义的，我应该告诉程序我写的就是一个单纯的\
	//path := "D:1lGolsrcllcode.olpboyedu.comllstudygollday01 '"
	//fmt.Println(path)
	//s := "Imok"
	//fmt.Println(s)
	s2 := `
		1
2
		3
			42
		你玩23
		`
	fmt.Printf(s2)
	s3 := `D: \Golsrclcode.oldboyedu. comlstudygolday01`
	fmt.Println(s3)
	// 字符串长度
	fmt.Println(len(s3))
	//字符串拼接
	name := "liang0"
	word := "你好"
	fmt.Printf(name + word)
	fmt.Sprintf(name + word)
	ss1 := fmt.Sprintln("%s%s", name, word)
	println(ss1)
	// 字符串分割
	ret := strings.Split(s3, "\\")
	fmt.Println(ret)
	// 包含
	fmt.Println(strings.Contains(s3, "理性"))
	fmt.Println(strings.Contains(ss1, "你好"))
	// 前缀
	fmt.Println(strings.HasPrefix(ss1, "你好"))
	//后缀
	fmt.Println(strings.HasSuffix(ss1, "你好"))

	s4 := "abcdeb"
	fmt.Println(strings.Index(s4, "c"))
	fmt.Println(strings.LastIndex(s4, "c"))
	for _, i2 := range s4 {
		fmt.Printf("%c\n", i2)
	}

	// 字符串修改
	a2 := "白萝卜"
	a3 := []rune(a2) /// 将a2强制转换成rune切片
	a3[0] = '红'
	fmt.Println(string(a3)) // 将切片强制转换成字符串

	//类型转换
	n1 := 10
	var f float64
	f = float64(n1)
	fmt.Println(f)
	fmt.Printf("%T\n", f)
}
